var Mock = require("mockjs");
const patient = ['健康', '冠心病', '高血压', '气管炎', '偏头痛', '感冒', '支气管扩张', '肺炎'];
const heightlist = [4.5, 4.7, 4.8, 4.9, 5.0, 5.1, 5.2, 5.3];
const statuslist = ['正常', '异常']
const suggests = [`你的检查报告提示有血脂升高，还有肝功能异常，因为你是乙肝病毒携带者，肝功能是有影响的，至于血脂高，着就需要你控制饮食了，高脂饮食就少吃点。多运动。
意见建议：你还比较年轻，血脂升高不是很多呢，可以通过运动饮食疗法控制，建议到医院复查血脂，根据结果来决定是否服药治疗。 `,
  `你的体检结果看，大多数都基本上正常范围，但你的心跳有点偏慢，就是心动过缓，血脂有轻度的升高，因此建议你认真锻炼身体。注意低盐低脂饮食。必要的时候口服他汀类药物进行治疗。`,
  ` 血脂偏高: 指血中脂类物质增多，造成血粘度增高或动脉粥样硬化。 使脑中风、冠心病、心肌梗死等病风险性增高。低脂饮食，少吃油腻食物、肥肉、 动物内脏，多食蔬菜水果，加强运动，促进脂质代谢，在医生指导下使用调脂药 物。`,
  `建议低胆固醇、低脂肪酸饮食，多食用含不饱和脂肪酸的油类(如麻油、菜油、豆油、菜油、玉米油等》，少食用饱和脂肪酸较多的油类(如动物油)，多食蔬菜水果及 豆类豆制品。由于人体胆固醉的合成速度午夜合成最快， 故提倡: 早吃饱、中吃好、晚吃少。 不宜长期使用广谱抗菌素和可增加血脂的药物，必要时医生指导下药物治疗。`,
  `肝功能是属于有异常的情况。尿酸偏高的这种情况的话考虑还是和平时有饮酒过高是有关系的，尿酸过高的话不排除会引起出现痛风，目前的情况建议您清淡饮食，可以积极的配合口服的药物来进行治疗的。`]
var car_status = ['刹车片破损', '发动机异常', '方向盘破损', '机箱破损', 'A柱断裂', '轮胎破损', '车身破损']
const guangdongPlaces = [
  "荔湾区",
  "越秀区",
  "海珠区",
  "天河区",
  "白云区",
  "黄埔区",
  "番禺区",
  "花都区",
  "南沙区",
  "增城区",
  "从化区",
];
var Random = Mock.Random;
  // 定义车牌号的正则表达式
  const licensePlateRegex = /^[A-Z]{1}[A-Z0-9]{5}$/;

  // 生成车牌号的函数
  function generateLicensePlate() {
    let plateNumber;
    do {
      plateNumber = Mock.mock({
        'plateNumber|1-10': function () {
          return Mock.mock(licensePlateRegex);
        },
      });
    } while (!licensePlateRegex.test(plateNumber.plateNumber));
    return plateNumber.plateNumber;
  }


let users = []
const count = 40
const tokens = []
for (let i = 0; i < count; i++) {
  let blood1 = Math.floor(Math.random() * (80 - 60 + 1)) + 60;
  let blood2 = Math.floor(Math.random() * (150 - 90 + 1)) + 90;
  users.push(
    Mock.mock({
      id: i,
      check_id: '20231201'+i,
      ID: 'token' + i + Mock.Random.guid().slice(0, 13),
      name: Mock.Random.cname(),
      title: Mock.Random.cname(),
      addr: '广州市 ' + guangdongPlaces[Math.floor(Math.random() * guangdongPlaces.length)],
      sex: Mock.Random.integer(0, 1),
      height: Math.floor(Math.random() * (200 - 150 + 1)) + 150,
      weight: Math.floor(Math.random() * (200 - 90 + 1)) + 90,
      car_id:'粤 '+generateLicensePlate(),
      bloodpressure: blood1 + '-' + blood2,

      age: Random.integer(20, 50),

      liverfunction: statuslist[Math.floor(Math.random() * statuslist.length)],

      suggestslist: suggests[Math.floor(Math.random() * suggests.length)],

      bloodsugar: parseFloat((Math.random() * (10 - 1) + 1).toFixed(2)),

      bloodfat: parseFloat((Math.random() * (5 - 1) + 1).toFixed(2)),

      renalfunction: statuslist[Math.floor(Math.random() * statuslist.length)],

      vision: heightlist[Math.floor(Math.random() * heightlist.length)],
      vision1: car_status[Math.floor(Math.random() * car_status.length)],
      // 体检时间
      birth: '2023-' + Random.datetime("MM-dd HH:mm:ss"),  // 值是指定格式的日期字符串
      birth1: '2023-' + Random.datetime("MM-dd HH:mm:ss"),  // 值是指定格式的日期字符串
      birth2: '2023-' + Random.datetime("MM-dd HH:mm:ss"),  // 值是指定格式的日期字符串
      list: {
        list1: parseFloat((Math.random() * (100 - 10) + 1).toFixed(2)),
        list2: parseFloat((Math.random() * (100 - 10) + 1).toFixed(2)),
        list3: parseFloat((Math.random() * (100 - 10) + 1).toFixed(2)),
        list4: parseFloat((Math.random() * (100 - 10) + 1).toFixed(2)),
        list5: parseFloat((Math.random() * (100 - 10) + 1).toFixed(2)),
      }
    })
  )
  // console.log(users[1]);
  tokens.push(users[i].ID)
}
let user1 = toObject(tokens, users);
function toObject(names, values) {
  var result = {};
  for (var i = 1; i < names.length; i++)
    result[names[i]] = values[i];
  return result;
}
// console.log(user1);
// let datalist3 = 
function Torisk() {
  let dataid = users.map(v => v.id);
  let datatitle = users.map(v => v.title);
  let databirth = users.map(v => v.birth);
  let list1 = users.map(v => v.list);
  // console.log(list2);
  let goodtotol = dataid.map((id, i) => ({
    id,
    name: datatitle[i],
    date: databirth[i],
    list: list1[i],
  }));
  return goodtotol
}
let risklist = Torisk();

export default {
  login: (config) => {
    const { username } = JSON.parse(config.body);
    const token = tokens[username];
    if (!token) {
      return {
        status: 1,
        message: "用户名或密码错误",
      };
    }
    return {
      status: 0,
      token,
    };
  },
  userInfo: (config) => {
    const id = config.body == null ? 0 : config.body
    // console.log(id);
    if (users.filter(v => v.id == id)) {
      var userdata = users.filter(v => v.id == id);
      // console.log(userdata);
      return {
        status: 200,
        userdata
      }
    } else {
      return {
        status: 404,
        message: "信息获取失败"
      }
    }
  },
  getUsers: () => {
    return {
      status: 0,
      users: Object.values(user1),
    };
  },
  getrisk: () => {
    return {
      status: 0,
      users: Object.values(risklist),
    };
  },
  deleteUser: (config) => {
    const { id } = JSON.parse(config.body);
    // console.log(id);
    const token = tokens[id];
    // console.log(tokens[id]);
    // console.log(users);
    if (token) {
      delete user1[token]
      delete tokens[id];
    }
    return {
      status: 0,
    };
  },
  editUser: (config) => {
    const data = JSON.parse(config.body);
    const { id } = data;
    const token = tokens[id];
    if (token) {
      user1[token] = { ...user1[token], ...data };
    }
    return {
      status: 0,
    };
  },
  ValidatUserID: (config) => {
    const userID = config.body;
    const token = tokens[userID];
    if (token) {
      return {
        status: 1,
      };
    } else {
      return {
        status: 0
      };
    }
  },
  addUser: (config) => {
    const data = JSON.parse(config.body);
    const { id } = data;
    tokens[id] = `${id}-token`
    user1[`${id}-token`] = {
      ...user1[`${id}-token`],
      ...data
    }
    return {
      status: 0,
    };
  },
  logout: (_) => {
    return {
      status: 0,
      data: "success",
    };
  },
};
